// pages/profile/index.ts
Page({

  /**
   * 页面的初始数据
   */
  data: {

  },
  onShow() {
    //如果有用户资料的话,获取到本地的用户资料在修改用户资料中进行数据回填
    const userinfo = wx.getStorageSync('userinfo');
    if (userinfo) {
      this.setData({
        userinfo
      })
    }

  },
  //更新用户头像
  setavatar(e) {
    // 获取到图片临时路径
    console.log(e.detail.avatarUrl);
    // 将图片上传到服务器获取在线地址用于后续发送请求
    // 小程序中的图片上传使用的是小程序的内置API而不是我们封装的http
    // 所以基地址和请求头需要手动填写
    // 基地址在这里使用http封装的,方便后续如果改接口不需要单独改地址
    wx.uploadFile({
      url: wx.http.baseURL + 'upload',//上传图片的服务器路径
      filePath: e.detail.avatarUrl,//上传的图片路径
      name: 'file',//根据接口要求填写的文件对应的key
      // 请求头
      header: {
        Authorization: `Bearer ${getApp().token}`
      },
      // 上传图片的其他信息,接口要求上传头像需要设置type值为avatar
      formData: {
        type: 'avatar'
      },
      // 成功回调函数
      success: async (res) => {

        // 获取到的数据是json对象,需要进行数据转换
        const resdata = JSON.parse(res.data)
        console.log(resdata, 888888);
        // 使用获取到的头像在线路径发送请求
        const avatarres = await wx.http.put('userInfo', { avatar: resdata.data.url })
        if (avatarres.code !== 10000) {
          wx.utils.toast('修改头像失败')
          return
        }
        wx.utils.toast('修改头像成功')
        // 将修改头像后最新的头像在线路径赋值给data中的对象
        // 这里赋值只会在上传完成显示在更新头像页面
        this.setData({
          'userinfo.avatar': resdata.data.url
        })
      }
    })
  },
  //修改用户名
  async setnickname(e) {
    console.log(8888, e);
    const nickName = e.detail.value
    // 非空判断
    if (!nickName) return wx.utils.toast('用户名不能为空')
    // 调用接口
    const res = await wx.http.put('userInfo', { nickName })
    if (res.code !== 10000) {
      wx.utils.toast('修改用户名失败')
      return
    }
    wx.utils.toast('修改用户名成功')
    // 添加到data中
    this.setData({
      'userinfo.nickName': nickName
    })
    console.log(res);

  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */


  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})